<?php

if (!defined('BASEPATH'))
    exit('No direct script access allowed');

class UsuariosController extends CI_Controller {

    //constructor de la clase
    function __construct() {
        parent::__construct();
        $this->load->model('usuarioModel');
    }

    public function index() {
        //carga el contenido del inicio de sesion
        $this->load->view('estandar_contents/iniciarSesionContent');
    }

    //funcion para la comprobacion del usuario que intenta iniciar sesion
    public function iniciar_sesion() {
        //Reglas de validacion
        $this->form_validation->set_rules('usuario', 'usuario', 'trim|required');
        $this->form_validation->set_rules('contrasena', 'contrase&ntilde;a', 'trim|required');

        //fijar mensajes de error
        $this->form_validation->set_message('required', 'El campo %s es requerido');
        $this->form_validation->set_message('trim', 'No se admiten caracteres especiales');

        //carga el contenido de la pagina           
        $data['head'] = 'pages/head';
        $data['header'] = 'pages/header';
        $data['menuLateral'] = 'pages/menuLateral';
        $data['contenido'] = 'estandar_contents/estandarContent';

        if ($this->form_validation->run() == FALSE) {
            $data['errores'] = validation_errors();
        } else {
            $usuario = $this->input->post('usuario', true);
            $contrasena = $this->input->post('contrasena', true);

            $usuario_actual = $this->usuarioModel->iniciar_sesion($usuario, $contrasena);

            if ($usuario_actual) {
                //guarda los datos del usuario en una varible de sesion
                $this->set_session('usuario_id', $usuario_actual['USUARIO_ID']);
                $this->set_session('usuario_nombre', $usuario_actual['USUARIO_NOMBRE']);
                $this->set_session('usuario_contrasena', $usuario_actual['USUARIO_CONTRASENA']);
                

                //Obtiene el rol del usuario que inicio sesion
                $rol = $this->usuarioModel->obtener_nombre_rol($usuario_actual['USUARIO_ID']);
                $this->set_session('rol_nombre', $rol);
                if ($rol=='mesero') {
                    redirect(base_url() . 'index.php/pedidoController');
                }else{
                    redirect(base_url() . 'index.php/administradorController');
                    
                }
                
            }

            $data['mensajeError'] = 'Usuario o Contrase&ntilde;a incorrectos';
        }

        $this->load->view('plantilla', $data);
    }

    //todavia no se usa
    function validar_contrasena() {
        $usuario = $this->input->post('txt_usuario', true);
        $contrasena = $this->input->post('txt_contrasena', true);

        if (!$this->usuarioModel->login($email, $contrasena)) {
            $this->form_validation->set_message('error_contrasena', 'Contraseña incorrecta');
            return FALSE;
        } else {
            return TRUE;
        }
    }

    public function obtener_rol($id) {
        $usuario = $id;

        //llama la funcion obtener-rol del uduarioModel
        return $this->usuarioModel->obtener_rol($usuario);
    }

    //funciones para acceder y modificar las variables de session
    public function set_session($var, $cont = NULL) {
        $this->session->set_userdata($var, $cont);
    }

    public function get_session() {
        return $this->session->all_userdata();
    }

    //Funcion que elimina los datos de sesion del sistema
    public function logout() {
        $this->session->sess_destroy();
        redirect(base_url());
    }

}
